#ifndef ES_ROWS_SHELL_H
#define ES_ROWS_SHELL_H

#include <list>
#include <string>

class ESCell
{
public:
    std::string column;
    std::string value;
    bool canDivide = true;

    ESCell() = default;
    ESCell(std::string  column, std::string  value, bool canDivide);
};

class ESRow
{
public:
    std::string Key;
    std::list<ESCell> Cells;

    ESRow() = default;
    ESRow(std::string  rowKey, std::initializer_list<ESCell> cells);
};

class ESCells
{
public:
    std::string IndexName;
    std::list<ESRow> Rows;
    ESCells() = default;
    ESCells(std::string indexName, std::initializer_list<ESRow> rows);

    [[nodiscard]] std::string ToString() const;
    [[nodiscard]] std::string ToString(const std::string& indexName) const;
};

#endif //ES_ROWS_SHELL_H
